/**
 * 设计一个高效算法，将顺序表L的所有元素逆置，要求算法的空间复杂度为O(1)
 * 
 * 可以使用折半思想：扫描顺序表前半部分，对于元素L.data[i]和对应的后半部分L.data[L.length-1-i]对换
 * 
 * */


#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 50		// 线性表的最大长度
#define ElemType int    // 元素存储类型
#define bool int
#define true !0
#define false 0

typedef struct {
	ElemType data[MAX_SIZE];
	int length;			// 顺序表当前长度
} SqList;


void Reverse(SqList& L)
{
	ElemType tmp;
	for(int i=0; i <= L.length/2; i++) {
		tmp = L.data[i];	//元素互换
		L.data[i] = L.data[L.length-1-i];
		L.data[L.length-1-i] = tmp;
	}
}